#!/usr/bin/env python
# -*- coding:utf-8 -*-

# file:do_one_Calculator.py
# author:张世航
# datetime:2024/11/12 23:23
# software: PyCharm
"""
练习1:
      定义一个高阶函数, 实现加,减,乘,除计算器功能;
      highfunc(a ,b  ,func)
"""
# import module your need

def add(a, b):
    return a + b


def sub(a, b):
    return a - b


def mul(a, b):
    return a * b


def div(a, b):
    if b != 0:
        return a / b
    else:
        return "除数不能为0"


def mod(a, b):
    if b != 0:
        return a % b
    else:
        return "除数不能为0"


def pow(a, b):
    return a ** b


# 定义操作函数字典
operations = {
    'add': add,
    'sub': sub,
    'mul': mul,
    'div': div,
    'mod': mod,
    'pow': pow
}


def highfunc(a, b, func):
    """
    高阶函数，实现加、减、乘、除等计算器功能

    :param a: 第一个操作数
    :param b: 第二个操作数
    :param func: 操作函数名称（字符串）
    :return: 计算结果
    """
    if func in operations:
        return operations[func](a, b)
    else:
        return "无效的操作函数"


# 测试
while True:
    user_input = input("请输入操作数和操作函数名称，用空格分隔（例如：10 5 add），输入 'exit' 退出：")
    if user_input == 'exit':
        break

    args = user_input.split()
    if len(args) != 3:
        print("输入无效，请输入两个操作数和一个操作函数名称")
        continue

    try:
        a = int(args[0])
        b = int(args[1])
        func = args[2]
        result = highfunc(a, b, func)
        print(f"结果: {result}")
    except ValueError:
        print("输入无效，请输入正确的操作数和操作函数名称")